﻿Imports BLL
Imports EntitiesLayer
Public Class FrmEditarParametrosSistema
    Private gestor As GestorParametrosSistema = New GestorParametrosSistema()
    Private Sub bntSalir_Click(sender As Object, e As EventArgs) Handles bntSalir.Click
        Me.Dispose()
    End Sub
    Private Sub FrmEditarParametrosSistema_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        If Not gestorProcesos.esPermitido(Permiso.Modificar_parámetros) Then
            MsgBox("Lo sentimos, el usuario actual no posee los suficientes permisos para completar la acción.")
            Me.Dispose()
        End If
        ' Llenar el formulario con los datos almacenados en la Base de datos
        Dim parametros As ParametrosSistema
        parametros = gestor.ObtenerParametrosSistema()

        ' info del gimnacio
        txtStrNombreGym.Text = parametros.NombreGimnasio
        txtStrRazonSocial.Text = parametros.RazonSocialGimnasio
        ' Notificaciones
        cmbReqRecordarioMedida.DataSource = [Enum].GetValues(GetType(FrecuenciaRecordatorioMedida))
        cmbReqRecordarioMedida.SelectedIndex = cmbReqRecordarioMedida.FindString([Enum].GetName(GetType(FrecuenciaRecordatorioMedida), parametros.FrecuenciaRecordatorioMedida))
        ' Pagos
        txtDecMembresia.Text = parametros.CostoMembresia
        txtDecMatricula.Text = parametros.CostoMatricula
        cmbReqFrecuenciaCobro.DataSource = [Enum].GetValues(GetType(FrecuenciaCobroMembresia))
        cmbReqFrecuenciaCobro.SelectedIndex = cmbReqFrecuenciaCobro.FindString([Enum].GetName(GetType(FrecuenciaCobroMembresia), parametros.FrecuenciaCobroMembresia))
        ' Envio de correos
        txtEmailRemitente.Text = parametros.RemitenteEnvioCorreo
        txtStrHost.Text = parametros.HostEnvioCorreo
        txtIntPuerto.Text = parametros.PuertoEnvioCorreo
        txtStrNombreUsuario.Text = parametros.NombreUsuarioEnvioCorreo
        txtStrContrasenna.Text = parametros.ContrasennaEnvioCorreo
        ' Calculo de grasa
        txtDecConstanteMujer.Text = parametros.ConstanteMujerPorcentajeGrasa
        txtDecConstanteHombre.Text = parametros.ConstanteHombrePorcentajeGrasa
        txtDecConstanteSumando.Text = parametros.ConstanteSumandoPorcentajeGrasa
    End Sub

    Private Sub btnSalvar_Click(sender As Object, e As EventArgs) Handles btnSalvar.Click
        Dim Validador As New ValidadorDeFormularios(Me, ErrorProvider1)
        Dim Valido As Boolean = Validador.ValidarFormulario()

        If Not Valido Then
            Return
        End If

        ' Informacion de gimnacio
        Dim NombreGym As String = txtStrNombreGym.Text
        Dim RazonSocial As String = txtStrRazonSocial.Text
        ' Para los recordatorios
        Dim RecordarioMedida As Integer = Integer.Parse(cmbReqRecordarioMedida.SelectedItem)
        ' para los pagos
        Dim Membresia As Decimal = Decimal.Parse(txtDecMembresia.Text)
        Dim Matricula As Decimal = Decimal.Parse(txtDecMatricula.Text)
        Dim FrecuenciaCobro As Integer = Integer.Parse(cmbReqFrecuenciaCobro.SelectedItem)
        ' Para envio de correos
        Dim Remitente As String = txtEmailRemitente.Text
        Dim Host As String = txtStrHost.Text
        Dim Puerto As Integer = Integer.Parse(txtIntPuerto.Text)
        Dim NombreUsuario As String = txtStrNombreUsuario.Text
        Dim Contrasenna As String = txtStrContrasenna.Text
        ' Para calculo de grasa
        Dim ConstanteMujer As Decimal = Decimal.Parse(txtDecConstanteMujer.Text)
        Dim ConstanteHombre As Decimal = Decimal.Parse(txtDecConstanteHombre.Text)
        Dim ConstanteSumando As Decimal = Decimal.Parse(txtDecConstanteSumando.Text)

        gestor.ModificarParametrosSistema(NombreGym, RazonSocial, RecordarioMedida, Membresia, Matricula, FrecuenciaCobro, Remitente, Host, Puerto, NombreUsuario, Contrasenna, ConstanteMujer, ConstanteHombre, ConstanteSumando)
        MsgBox("Los cambios han sido guardados satisfactoriamente.", MsgBoxStyle.OkOnly + MsgBoxStyle.Information, "Parámetros del sistema")
        Me.Dispose()
    End Sub

End Class